{{>licenseInfo}}
package {{package}};

{{#imports}}import {{import}};
{{/imports}}

import {{rootJavaEEPackage}}.ws.rs.*;
{{#returnResponse}}
import {{rootJavaEEPackage}}.ws.rs.core.Response;
{{/returnResponse}}

{{#supportAsync}}
import java.util.concurrent.CompletionStage;
import java.util.concurrent.CompletableFuture;
{{/supportAsync}}

import java.io.InputStream;
import java.util.Map;
import java.util.List;
{{#useBeanValidation}}import {{rootJavaEEPackage}}.validation.constraints.*;
import {{rootJavaEEPackage}}.validation.Valid;{{/useBeanValidation}}

@Path("{{commonPath}}"){{#hasConsumes}}
@Consumes({ {{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}} }){{/hasConsumes}}{{#hasProduces}}
@Produces({ {{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}} }){{/hasProduces}}
{{>generatedAnnotation}}

public class {{classname}}Impl {{^useAbstractClass}}implements{{/useAbstractClass}}{{#useAbstractClass}}extends{{/useAbstractClass}} {{classname}} {
{{#operations}}
{{#operation}}

{{>apiMethod}}

{{/operation}}
}
{{/operations}}